/**
 */
package org.mro.grib.model.files.secondEdition.dataRepresentations.impl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import org.mro.grib.model.files.firstEdition.FirstEditionPackage;

import org.mro.grib.model.files.firstEdition.grids.GridsPackage;

import org.mro.grib.model.files.firstEdition.grids.impl.GridsPackageImpl;

import org.mro.grib.model.files.firstEdition.impl.FirstEditionPackageImpl;

import org.mro.grib.model.files.firstEdition.sections.SectionsPackage;

import org.mro.grib.model.files.firstEdition.sections.impl.SectionsPackageImpl;

import org.mro.grib.model.files.secondEdition.SecondEditionPackage;

import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate50;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate52;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate5200;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate53;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate54;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate541;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate550;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate551;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate561;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplateNumber;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsFactory;
import org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage;
import org.mro.grib.model.files.secondEdition.dataRepresentations.IDataRepresentation;

import org.mro.grib.model.files.secondEdition.impl.SecondEditionPackageImpl;

import org.mro.grib.model.files.secondEdition.products.ProductsPackage;

import org.mro.grib.model.files.secondEdition.products.impl.ProductsPackageImpl;
import org.mro.grib.model.files.secondEdition.products.meteorological.MeteorologicalPackage;
import org.mro.grib.model.files.secondEdition.products.meteorological.impl.MeteorologicalPackageImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class DataRepresentationsPackageImpl extends EPackageImpl implements DataRepresentationsPackage {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass iDataRepresentationEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate50EClass = null;
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate51EClass = null;
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate52EClass = null;
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate53EClass = null;
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate54EClass = null;
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate55EClass = null;
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate541EClass = null;
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate550EClass = null;
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate551EClass = null;
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate561EClass = null;
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataRepresentationTemplate5200EClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EEnum dataRepresentationTemplateNumberEEnum = null;

	/**
	 * Creates an instance of the model <b>Package</b>, registered with
	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
	 * package URI value.
	 * <p>Note: the correct way to create the package is via the static
	 * factory method {@link #init init()}, which also performs
	 * initialization of the package, or returns the registered package,
	 * if one already exists.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.ecore.EPackage.Registry
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private DataRepresentationsPackageImpl() {
		super(eNS_URI, DataRepresentationsFactory.eINSTANCE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static boolean isInited = false;

	/**
	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
	 * 
	 * <p>This method is used to initialize {@link DataRepresentationsPackage#eINSTANCE} when that field is accessed.
	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #eNS_URI
	 * @see #createPackageContents()
	 * @see #initializePackageContents()
	 * @generated
	 */
	public static DataRepresentationsPackage init() {
		if (isInited) return (DataRepresentationsPackage)EPackage.Registry.INSTANCE.getEPackage(DataRepresentationsPackage.eNS_URI);

		// Obtain or create and register package
		DataRepresentationsPackageImpl theDataRepresentationsPackage = (DataRepresentationsPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof DataRepresentationsPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new DataRepresentationsPackageImpl());

		isInited = true;

		// Obtain or create and register interdependencies
		FirstEditionPackageImpl theFirstEditionPackage = (FirstEditionPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(FirstEditionPackage.eNS_URI) instanceof FirstEditionPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(FirstEditionPackage.eNS_URI) : FirstEditionPackage.eINSTANCE);
		GridsPackageImpl theGridsPackage = (GridsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(GridsPackage.eNS_URI) instanceof GridsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(GridsPackage.eNS_URI) : GridsPackage.eINSTANCE);
		SectionsPackageImpl theSectionsPackage = (SectionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SectionsPackage.eNS_URI) instanceof SectionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SectionsPackage.eNS_URI) : SectionsPackage.eINSTANCE);
		SecondEditionPackageImpl theSecondEditionPackage = (SecondEditionPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SecondEditionPackage.eNS_URI) instanceof SecondEditionPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SecondEditionPackage.eNS_URI) : SecondEditionPackage.eINSTANCE);
		org.mro.grib.model.files.secondEdition.grids.impl.GridsPackageImpl theGridsPackage_1 = (org.mro.grib.model.files.secondEdition.grids.impl.GridsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(org.mro.grib.model.files.secondEdition.grids.GridsPackage.eNS_URI) instanceof org.mro.grib.model.files.secondEdition.grids.impl.GridsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(org.mro.grib.model.files.secondEdition.grids.GridsPackage.eNS_URI) : org.mro.grib.model.files.secondEdition.grids.GridsPackage.eINSTANCE);
		org.mro.grib.model.files.secondEdition.sections.impl.SectionsPackageImpl theSectionsPackage_1 = (org.mro.grib.model.files.secondEdition.sections.impl.SectionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(org.mro.grib.model.files.secondEdition.sections.SectionsPackage.eNS_URI) instanceof org.mro.grib.model.files.secondEdition.sections.impl.SectionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(org.mro.grib.model.files.secondEdition.sections.SectionsPackage.eNS_URI) : org.mro.grib.model.files.secondEdition.sections.SectionsPackage.eINSTANCE);
		ProductsPackageImpl theProductsPackage = (ProductsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ProductsPackage.eNS_URI) instanceof ProductsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ProductsPackage.eNS_URI) : ProductsPackage.eINSTANCE);
		MeteorologicalPackageImpl theMeteorologicalPackage = (MeteorologicalPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(MeteorologicalPackage.eNS_URI) instanceof MeteorologicalPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(MeteorologicalPackage.eNS_URI) : MeteorologicalPackage.eINSTANCE);

		// Create package meta-data objects
		theDataRepresentationsPackage.createPackageContents();
		theFirstEditionPackage.createPackageContents();
		theGridsPackage.createPackageContents();
		theSectionsPackage.createPackageContents();
		theSecondEditionPackage.createPackageContents();
		theGridsPackage_1.createPackageContents();
		theSectionsPackage_1.createPackageContents();
		theProductsPackage.createPackageContents();
		theMeteorologicalPackage.createPackageContents();

		// Initialize created meta-data
		theDataRepresentationsPackage.initializePackageContents();
		theFirstEditionPackage.initializePackageContents();
		theGridsPackage.initializePackageContents();
		theSectionsPackage.initializePackageContents();
		theSecondEditionPackage.initializePackageContents();
		theGridsPackage_1.initializePackageContents();
		theSectionsPackage_1.initializePackageContents();
		theProductsPackage.initializePackageContents();
		theMeteorologicalPackage.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theDataRepresentationsPackage.freeze();

  
		// Update the registry and return the package
		EPackage.Registry.INSTANCE.put(DataRepresentationsPackage.eNS_URI, theDataRepresentationsPackage);
		return theDataRepresentationsPackage;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getIDataRepresentation() {
		return iDataRepresentationEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate50() {
		return dataRepresentationTemplate50EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate50_ReferenceValue() {
		return (EAttribute)dataRepresentationTemplate50EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate50_BinaryScaleFactor() {
		return (EAttribute)dataRepresentationTemplate50EClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate50_DecimalScaleFactor() {
		return (EAttribute)dataRepresentationTemplate50EClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate50_NumberOfBitsUsedForEachPackedValue() {
		return (EAttribute)dataRepresentationTemplate50EClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate50_TypeOfOriginalFieldValues() {
		return (EAttribute)dataRepresentationTemplate50EClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate51() {
		return dataRepresentationTemplate51EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_MatrixBitmapPresence() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_NumberOfDataValues() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_FirstDimension() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_SecondDimension() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_FirstDimensionCoordinateValueDefinition() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_Nc1() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_SecondDimensionCoordinateValueDefinition() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_Nc2() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_FirstDimensionPhysicalSignificance() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_SecondDimensionPhysicalSignificance() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_FirstDimensionCoefficientsOffset() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate51_SecondDimensionCoefficientsOffset() {
		return (EAttribute)dataRepresentationTemplate51EClass.getEStructuralFeatures().get(11);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate52() {
		return dataRepresentationTemplate52EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_GroupSplittingMethod() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_MissingValueManagement() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_PrimaryMissingValueSubstitute() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_SecondaryMissingValueSubstitute() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_Ng() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_ReferenceForGroupWidths() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_GroupWidthsNumberOfBits() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_ReferenceForGroupLengths() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_GroupLengthsIncrement() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_TrueLengthOfLastGroup() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate52_ScaledGroupLengthNumberOfBits() {
		return (EAttribute)dataRepresentationTemplate52EClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate53() {
		return dataRepresentationTemplate53EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate53_OrderOfSpatialDifferencing() {
		return (EAttribute)dataRepresentationTemplate53EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate53_ExtraDifferencingOctetsNumber() {
		return (EAttribute)dataRepresentationTemplate53EClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate54() {
		return dataRepresentationTemplate54EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate54_Precision() {
		return (EAttribute)dataRepresentationTemplate54EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate55() {
		return dataRepresentationTemplate55EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate55_ReferenceValue() {
		return (EAttribute)dataRepresentationTemplate55EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate55_BinaryScaleFactor() {
		return (EAttribute)dataRepresentationTemplate55EClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate55_DecimalScaleFactor() {
		return (EAttribute)dataRepresentationTemplate55EClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate55_ScaledAndReferencedValueBitsNumber() {
		return (EAttribute)dataRepresentationTemplate55EClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate55_TypeOfOriginalFieldsValues() {
		return (EAttribute)dataRepresentationTemplate55EClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate55_TypeOfCompression() {
		return (EAttribute)dataRepresentationTemplate55EClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate55_TargetCompressionRatio() {
		return (EAttribute)dataRepresentationTemplate55EClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate541() {
		return dataRepresentationTemplate541EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate541_ReferenceValue() {
		return (EAttribute)dataRepresentationTemplate541EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate541_BinaryScaleFactor() {
		return (EAttribute)dataRepresentationTemplate541EClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate541_DecimalScaleFactor() {
		return (EAttribute)dataRepresentationTemplate541EClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate541_ScaledAndReferencedValueBitsNumber() {
		return (EAttribute)dataRepresentationTemplate541EClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate541_TypeOfOriginalFieldsValues() {
		return (EAttribute)dataRepresentationTemplate541EClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate550() {
		return dataRepresentationTemplate550EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate550_ReferenceValue() {
		return (EAttribute)dataRepresentationTemplate550EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate550_BinaryScaleFactor() {
		return (EAttribute)dataRepresentationTemplate550EClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate550_DecimalScaleFactor() {
		return (EAttribute)dataRepresentationTemplate550EClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate550_PackedValueBitsNumber() {
		return (EAttribute)dataRepresentationTemplate550EClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate550_RealPartOfCoefficient() {
		return (EAttribute)dataRepresentationTemplate550EClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate551() {
		return dataRepresentationTemplate551EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate551_P() {
		return (EAttribute)dataRepresentationTemplate551EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate551_Js() {
		return (EAttribute)dataRepresentationTemplate551EClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate551_Ks() {
		return (EAttribute)dataRepresentationTemplate551EClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate551_Ms() {
		return (EAttribute)dataRepresentationTemplate551EClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate551_Ts() {
		return (EAttribute)dataRepresentationTemplate551EClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate551_UnpackedSubsetPrecision() {
		return (EAttribute)dataRepresentationTemplate551EClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate561() {
		return dataRepresentationTemplate561EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate561_ReferenceValue() {
		return (EAttribute)dataRepresentationTemplate561EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate561_BinaryScaleFactor() {
		return (EAttribute)dataRepresentationTemplate561EClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate561_DecimalScaleFactor() {
		return (EAttribute)dataRepresentationTemplate561EClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate561_NumberOfBitsUsedForEachPackedValue() {
		return (EAttribute)dataRepresentationTemplate561EClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate561_PreProcessingParameter() {
		return (EAttribute)dataRepresentationTemplate561EClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataRepresentationTemplate5200() {
		return dataRepresentationTemplate5200EClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate5200_NumberOfBitsUsedForEachPackedValue() {
		return (EAttribute)dataRepresentationTemplate5200EClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate5200_Mv() {
		return (EAttribute)dataRepresentationTemplate5200EClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate5200_Mvl() {
		return (EAttribute)dataRepresentationTemplate5200EClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate5200_DecimalScaleFactor() {
		return (EAttribute)dataRepresentationTemplate5200EClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataRepresentationTemplate5200_MvlListOffset() {
		return (EAttribute)dataRepresentationTemplate5200EClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EEnum getDataRepresentationTemplateNumber() {
		return dataRepresentationTemplateNumberEEnum;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DataRepresentationsFactory getDataRepresentationsFactory() {
		return (DataRepresentationsFactory)getEFactoryInstance();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isCreated = false;

	/**
	 * Creates the meta-model objects for the package.  This method is
	 * guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void createPackageContents() {
		if (isCreated) return;
		isCreated = true;

		// Create classes and their features
		iDataRepresentationEClass = createEClass(IDATA_REPRESENTATION);

		dataRepresentationTemplate50EClass = createEClass(DATA_REPRESENTATION_TEMPLATE50);
		createEAttribute(dataRepresentationTemplate50EClass, DATA_REPRESENTATION_TEMPLATE50__REFERENCE_VALUE);
		createEAttribute(dataRepresentationTemplate50EClass, DATA_REPRESENTATION_TEMPLATE50__BINARY_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate50EClass, DATA_REPRESENTATION_TEMPLATE50__DECIMAL_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate50EClass, DATA_REPRESENTATION_TEMPLATE50__NUMBER_OF_BITS_USED_FOR_EACH_PACKED_VALUE);
		createEAttribute(dataRepresentationTemplate50EClass, DATA_REPRESENTATION_TEMPLATE50__TYPE_OF_ORIGINAL_FIELD_VALUES);

		dataRepresentationTemplate51EClass = createEClass(DATA_REPRESENTATION_TEMPLATE51);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__MATRIX_BITMAP_PRESENCE);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__NUMBER_OF_DATA_VALUES);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__FIRST_DIMENSION);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__SECOND_DIMENSION);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__FIRST_DIMENSION_COORDINATE_VALUE_DEFINITION);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__NC1);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__SECOND_DIMENSION_COORDINATE_VALUE_DEFINITION);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__NC2);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__FIRST_DIMENSION_PHYSICAL_SIGNIFICANCE);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__SECOND_DIMENSION_PHYSICAL_SIGNIFICANCE);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__FIRST_DIMENSION_COEFFICIENTS_OFFSET);
		createEAttribute(dataRepresentationTemplate51EClass, DATA_REPRESENTATION_TEMPLATE51__SECOND_DIMENSION_COEFFICIENTS_OFFSET);

		dataRepresentationTemplate52EClass = createEClass(DATA_REPRESENTATION_TEMPLATE52);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__GROUP_SPLITTING_METHOD);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__MISSING_VALUE_MANAGEMENT);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__PRIMARY_MISSING_VALUE_SUBSTITUTE);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__SECONDARY_MISSING_VALUE_SUBSTITUTE);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__NG);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__REFERENCE_FOR_GROUP_WIDTHS);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__GROUP_WIDTHS_NUMBER_OF_BITS);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__REFERENCE_FOR_GROUP_LENGTHS);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__GROUP_LENGTHS_INCREMENT);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__TRUE_LENGTH_OF_LAST_GROUP);
		createEAttribute(dataRepresentationTemplate52EClass, DATA_REPRESENTATION_TEMPLATE52__SCALED_GROUP_LENGTH_NUMBER_OF_BITS);

		dataRepresentationTemplate53EClass = createEClass(DATA_REPRESENTATION_TEMPLATE53);
		createEAttribute(dataRepresentationTemplate53EClass, DATA_REPRESENTATION_TEMPLATE53__ORDER_OF_SPATIAL_DIFFERENCING);
		createEAttribute(dataRepresentationTemplate53EClass, DATA_REPRESENTATION_TEMPLATE53__EXTRA_DIFFERENCING_OCTETS_NUMBER);

		dataRepresentationTemplate54EClass = createEClass(DATA_REPRESENTATION_TEMPLATE54);
		createEAttribute(dataRepresentationTemplate54EClass, DATA_REPRESENTATION_TEMPLATE54__PRECISION);

		dataRepresentationTemplate55EClass = createEClass(DATA_REPRESENTATION_TEMPLATE55);
		createEAttribute(dataRepresentationTemplate55EClass, DATA_REPRESENTATION_TEMPLATE55__REFERENCE_VALUE);
		createEAttribute(dataRepresentationTemplate55EClass, DATA_REPRESENTATION_TEMPLATE55__BINARY_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate55EClass, DATA_REPRESENTATION_TEMPLATE55__DECIMAL_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate55EClass, DATA_REPRESENTATION_TEMPLATE55__SCALED_AND_REFERENCED_VALUE_BITS_NUMBER);
		createEAttribute(dataRepresentationTemplate55EClass, DATA_REPRESENTATION_TEMPLATE55__TYPE_OF_ORIGINAL_FIELDS_VALUES);
		createEAttribute(dataRepresentationTemplate55EClass, DATA_REPRESENTATION_TEMPLATE55__TYPE_OF_COMPRESSION);
		createEAttribute(dataRepresentationTemplate55EClass, DATA_REPRESENTATION_TEMPLATE55__TARGET_COMPRESSION_RATIO);

		dataRepresentationTemplate541EClass = createEClass(DATA_REPRESENTATION_TEMPLATE541);
		createEAttribute(dataRepresentationTemplate541EClass, DATA_REPRESENTATION_TEMPLATE541__REFERENCE_VALUE);
		createEAttribute(dataRepresentationTemplate541EClass, DATA_REPRESENTATION_TEMPLATE541__BINARY_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate541EClass, DATA_REPRESENTATION_TEMPLATE541__DECIMAL_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate541EClass, DATA_REPRESENTATION_TEMPLATE541__SCALED_AND_REFERENCED_VALUE_BITS_NUMBER);
		createEAttribute(dataRepresentationTemplate541EClass, DATA_REPRESENTATION_TEMPLATE541__TYPE_OF_ORIGINAL_FIELDS_VALUES);

		dataRepresentationTemplate550EClass = createEClass(DATA_REPRESENTATION_TEMPLATE550);
		createEAttribute(dataRepresentationTemplate550EClass, DATA_REPRESENTATION_TEMPLATE550__REFERENCE_VALUE);
		createEAttribute(dataRepresentationTemplate550EClass, DATA_REPRESENTATION_TEMPLATE550__BINARY_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate550EClass, DATA_REPRESENTATION_TEMPLATE550__DECIMAL_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate550EClass, DATA_REPRESENTATION_TEMPLATE550__PACKED_VALUE_BITS_NUMBER);
		createEAttribute(dataRepresentationTemplate550EClass, DATA_REPRESENTATION_TEMPLATE550__REAL_PART_OF_COEFFICIENT);

		dataRepresentationTemplate551EClass = createEClass(DATA_REPRESENTATION_TEMPLATE551);
		createEAttribute(dataRepresentationTemplate551EClass, DATA_REPRESENTATION_TEMPLATE551__P);
		createEAttribute(dataRepresentationTemplate551EClass, DATA_REPRESENTATION_TEMPLATE551__JS);
		createEAttribute(dataRepresentationTemplate551EClass, DATA_REPRESENTATION_TEMPLATE551__KS);
		createEAttribute(dataRepresentationTemplate551EClass, DATA_REPRESENTATION_TEMPLATE551__MS);
		createEAttribute(dataRepresentationTemplate551EClass, DATA_REPRESENTATION_TEMPLATE551__TS);
		createEAttribute(dataRepresentationTemplate551EClass, DATA_REPRESENTATION_TEMPLATE551__UNPACKED_SUBSET_PRECISION);

		dataRepresentationTemplate561EClass = createEClass(DATA_REPRESENTATION_TEMPLATE561);
		createEAttribute(dataRepresentationTemplate561EClass, DATA_REPRESENTATION_TEMPLATE561__REFERENCE_VALUE);
		createEAttribute(dataRepresentationTemplate561EClass, DATA_REPRESENTATION_TEMPLATE561__BINARY_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate561EClass, DATA_REPRESENTATION_TEMPLATE561__DECIMAL_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate561EClass, DATA_REPRESENTATION_TEMPLATE561__NUMBER_OF_BITS_USED_FOR_EACH_PACKED_VALUE);
		createEAttribute(dataRepresentationTemplate561EClass, DATA_REPRESENTATION_TEMPLATE561__PRE_PROCESSING_PARAMETER);

		dataRepresentationTemplate5200EClass = createEClass(DATA_REPRESENTATION_TEMPLATE5200);
		createEAttribute(dataRepresentationTemplate5200EClass, DATA_REPRESENTATION_TEMPLATE5200__NUMBER_OF_BITS_USED_FOR_EACH_PACKED_VALUE);
		createEAttribute(dataRepresentationTemplate5200EClass, DATA_REPRESENTATION_TEMPLATE5200__MV);
		createEAttribute(dataRepresentationTemplate5200EClass, DATA_REPRESENTATION_TEMPLATE5200__MVL);
		createEAttribute(dataRepresentationTemplate5200EClass, DATA_REPRESENTATION_TEMPLATE5200__DECIMAL_SCALE_FACTOR);
		createEAttribute(dataRepresentationTemplate5200EClass, DATA_REPRESENTATION_TEMPLATE5200__MVL_LIST_OFFSET);

		// Create enums
		dataRepresentationTemplateNumberEEnum = createEEnum(DATA_REPRESENTATION_TEMPLATE_NUMBER);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes
		dataRepresentationTemplate50EClass.getESuperTypes().add(this.getIDataRepresentation());
		dataRepresentationTemplate51EClass.getESuperTypes().add(this.getDataRepresentationTemplate50());
		dataRepresentationTemplate52EClass.getESuperTypes().add(this.getDataRepresentationTemplate50());
		dataRepresentationTemplate53EClass.getESuperTypes().add(this.getDataRepresentationTemplate52());
		dataRepresentationTemplate54EClass.getESuperTypes().add(this.getIDataRepresentation());
		dataRepresentationTemplate55EClass.getESuperTypes().add(this.getIDataRepresentation());
		dataRepresentationTemplate541EClass.getESuperTypes().add(this.getIDataRepresentation());
		dataRepresentationTemplate550EClass.getESuperTypes().add(this.getIDataRepresentation());
		dataRepresentationTemplate551EClass.getESuperTypes().add(this.getDataRepresentationTemplate550());
		dataRepresentationTemplate561EClass.getESuperTypes().add(this.getIDataRepresentation());
		dataRepresentationTemplate5200EClass.getESuperTypes().add(this.getIDataRepresentation());

		// Initialize classes and features; add operations and parameters
		initEClass(iDataRepresentationEClass, IDataRepresentation.class, "IDataRepresentation", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate50EClass, DataRepresentationTemplate50.class, "DataRepresentationTemplate50", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate50_ReferenceValue(), ecorePackage.getEInt(), "referenceValue", null, 1, 1, DataRepresentationTemplate50.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate50_BinaryScaleFactor(), ecorePackage.getEShort(), "binaryScaleFactor", null, 1, 1, DataRepresentationTemplate50.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate50_DecimalScaleFactor(), ecorePackage.getEShort(), "decimalScaleFactor", null, 1, 1, DataRepresentationTemplate50.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate50_NumberOfBitsUsedForEachPackedValue(), ecorePackage.getEByte(), "numberOfBitsUsedForEachPackedValue", null, 1, 1, DataRepresentationTemplate50.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate50_TypeOfOriginalFieldValues(), ecorePackage.getEByte(), "typeOfOriginalFieldValues", null, 1, 1, DataRepresentationTemplate50.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate51EClass, DataRepresentationTemplate51.class, "DataRepresentationTemplate51", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_MatrixBitmapPresence(), ecorePackage.getEByte(), "matrixBitmapPresence", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_NumberOfDataValues(), ecorePackage.getEInt(), "numberOfDataValues", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_FirstDimension(), ecorePackage.getEShort(), "firstDimension", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_SecondDimension(), ecorePackage.getEShort(), "secondDimension", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_FirstDimensionCoordinateValueDefinition(), ecorePackage.getEByte(), "firstDimensionCoordinateValueDefinition", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_Nc1(), ecorePackage.getEByte(), "nc1", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_SecondDimensionCoordinateValueDefinition(), ecorePackage.getEByte(), "secondDimensionCoordinateValueDefinition", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_Nc2(), ecorePackage.getEByte(), "nc2", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_FirstDimensionPhysicalSignificance(), ecorePackage.getEByte(), "firstDimensionPhysicalSignificance", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_SecondDimensionPhysicalSignificance(), ecorePackage.getEByte(), "secondDimensionPhysicalSignificance", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_FirstDimensionCoefficientsOffset(), ecorePackage.getELong(), "firstDimensionCoefficientsOffset", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate51_SecondDimensionCoefficientsOffset(), ecorePackage.getELong(), "secondDimensionCoefficientsOffset", null, 1, 1, DataRepresentationTemplate51.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate52EClass, DataRepresentationTemplate52.class, "DataRepresentationTemplate52", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_GroupSplittingMethod(), ecorePackage.getEByte(), "groupSplittingMethod", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_MissingValueManagement(), ecorePackage.getEByte(), "missingValueManagement", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_PrimaryMissingValueSubstitute(), ecorePackage.getEInt(), "primaryMissingValueSubstitute", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_SecondaryMissingValueSubstitute(), ecorePackage.getEInt(), "secondaryMissingValueSubstitute", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_Ng(), ecorePackage.getEInt(), "ng", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_ReferenceForGroupWidths(), ecorePackage.getEByte(), "referenceForGroupWidths", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_GroupWidthsNumberOfBits(), ecorePackage.getEByte(), "groupWidthsNumberOfBits", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_ReferenceForGroupLengths(), ecorePackage.getEInt(), "referenceForGroupLengths", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_GroupLengthsIncrement(), ecorePackage.getEByte(), "groupLengthsIncrement", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_TrueLengthOfLastGroup(), ecorePackage.getEInt(), "trueLengthOfLastGroup", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate52_ScaledGroupLengthNumberOfBits(), ecorePackage.getEByte(), "scaledGroupLengthNumberOfBits", null, 1, 1, DataRepresentationTemplate52.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate53EClass, DataRepresentationTemplate53.class, "DataRepresentationTemplate53", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate53_OrderOfSpatialDifferencing(), ecorePackage.getEByte(), "orderOfSpatialDifferencing", null, 1, 1, DataRepresentationTemplate53.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate53_ExtraDifferencingOctetsNumber(), ecorePackage.getEByte(), "extraDifferencingOctetsNumber", null, 1, 1, DataRepresentationTemplate53.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate54EClass, DataRepresentationTemplate54.class, "DataRepresentationTemplate54", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate54_Precision(), ecorePackage.getEByte(), "precision", null, 1, 1, DataRepresentationTemplate54.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate55EClass, DataRepresentationTemplate55.class, "DataRepresentationTemplate55", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate55_ReferenceValue(), ecorePackage.getEInt(), "referenceValue", null, 1, 1, DataRepresentationTemplate55.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate55_BinaryScaleFactor(), ecorePackage.getEShort(), "binaryScaleFactor", null, 1, 1, DataRepresentationTemplate55.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate55_DecimalScaleFactor(), ecorePackage.getEShort(), "decimalScaleFactor", null, 1, 1, DataRepresentationTemplate55.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate55_ScaledAndReferencedValueBitsNumber(), ecorePackage.getEByte(), "scaledAndReferencedValueBitsNumber", null, 1, 1, DataRepresentationTemplate55.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate55_TypeOfOriginalFieldsValues(), ecorePackage.getEByte(), "typeOfOriginalFieldsValues", null, 1, 1, DataRepresentationTemplate55.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate55_TypeOfCompression(), ecorePackage.getEByte(), "typeOfCompression", null, 1, 1, DataRepresentationTemplate55.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate55_TargetCompressionRatio(), ecorePackage.getEByte(), "targetCompressionRatio", null, 1, 1, DataRepresentationTemplate55.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate541EClass, DataRepresentationTemplate541.class, "DataRepresentationTemplate541", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate541_ReferenceValue(), ecorePackage.getEInt(), "referenceValue", null, 1, 1, DataRepresentationTemplate541.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate541_BinaryScaleFactor(), ecorePackage.getEShort(), "binaryScaleFactor", null, 1, 1, DataRepresentationTemplate541.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate541_DecimalScaleFactor(), ecorePackage.getEShort(), "decimalScaleFactor", null, 1, 1, DataRepresentationTemplate541.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate541_ScaledAndReferencedValueBitsNumber(), ecorePackage.getEByte(), "scaledAndReferencedValueBitsNumber", null, 1, 1, DataRepresentationTemplate541.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate541_TypeOfOriginalFieldsValues(), ecorePackage.getEByte(), "typeOfOriginalFieldsValues", null, 1, 1, DataRepresentationTemplate541.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate550EClass, DataRepresentationTemplate550.class, "DataRepresentationTemplate550", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate550_ReferenceValue(), ecorePackage.getEInt(), "referenceValue", null, 1, 1, DataRepresentationTemplate550.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate550_BinaryScaleFactor(), ecorePackage.getEShort(), "binaryScaleFactor", null, 1, 1, DataRepresentationTemplate550.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate550_DecimalScaleFactor(), ecorePackage.getEShort(), "decimalScaleFactor", null, 1, 1, DataRepresentationTemplate550.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate550_PackedValueBitsNumber(), ecorePackage.getEByte(), "packedValueBitsNumber", null, 1, 1, DataRepresentationTemplate550.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate550_RealPartOfCoefficient(), ecorePackage.getEInt(), "realPartOfCoefficient", null, 1, 1, DataRepresentationTemplate550.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate551EClass, DataRepresentationTemplate551.class, "DataRepresentationTemplate551", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate551_P(), ecorePackage.getEInt(), "p", null, 1, 1, DataRepresentationTemplate551.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate551_Js(), ecorePackage.getEShort(), "js", null, 1, 1, DataRepresentationTemplate551.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate551_Ks(), ecorePackage.getEShort(), "ks", null, 1, 1, DataRepresentationTemplate551.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate551_Ms(), ecorePackage.getEShort(), "ms", null, 1, 1, DataRepresentationTemplate551.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate551_Ts(), ecorePackage.getEInt(), "ts", null, 1, 1, DataRepresentationTemplate551.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate551_UnpackedSubsetPrecision(), ecorePackage.getEByte(), "unpackedSubsetPrecision", null, 1, 1, DataRepresentationTemplate551.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate561EClass, DataRepresentationTemplate561.class, "DataRepresentationTemplate561", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate561_ReferenceValue(), ecorePackage.getEInt(), "referenceValue", null, 1, 1, DataRepresentationTemplate561.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate561_BinaryScaleFactor(), ecorePackage.getEShort(), "binaryScaleFactor", null, 1, 1, DataRepresentationTemplate561.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate561_DecimalScaleFactor(), ecorePackage.getEShort(), "decimalScaleFactor", null, 1, 1, DataRepresentationTemplate561.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate561_NumberOfBitsUsedForEachPackedValue(), ecorePackage.getEByte(), "numberOfBitsUsedForEachPackedValue", null, 1, 1, DataRepresentationTemplate561.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate561_PreProcessingParameter(), ecorePackage.getEInt(), "preProcessingParameter", null, 1, 1, DataRepresentationTemplate561.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		initEClass(dataRepresentationTemplate5200EClass, DataRepresentationTemplate5200.class, "DataRepresentationTemplate5200", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate5200_NumberOfBitsUsedForEachPackedValue(), ecorePackage.getEByte(), "numberOfBitsUsedForEachPackedValue", null, 1, 1, DataRepresentationTemplate5200.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate5200_Mv(), ecorePackage.getEShort(), "mv", null, 1, 1, DataRepresentationTemplate5200.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate5200_Mvl(), ecorePackage.getEShort(), "mvl", null, 1, 1, DataRepresentationTemplate5200.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate5200_DecimalScaleFactor(), ecorePackage.getEByte(), "decimalScaleFactor", null, 1, 1, DataRepresentationTemplate5200.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
		initEAttribute(getDataRepresentationTemplate5200_MvlListOffset(), ecorePackage.getELong(), "mvlListOffset", null, 1, 1, DataRepresentationTemplate5200.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$

		// Initialize enums and add enum literals
		initEEnum(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.class, "DataRepresentationTemplateNumber"); //$NON-NLS-1$
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_50);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_51);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_52);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_53);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_54);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_540);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_541);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_550);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_551);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_561);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_5200);
		addEEnumLiteral(dataRepresentationTemplateNumberEEnum, DataRepresentationTemplateNumber.DATA_REPRESENTATION_TEMPLATE_565535);

		// Create annotations
		// http://www.eclipse.org/emf/2002/GenModel
		createGenModelAnnotations();
	}

	/**
	 * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/GenModel</b>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected void createGenModelAnnotations() {
		String source = "http://www.eclipse.org/emf/2002/GenModel"; //$NON-NLS-1$		
		addAnnotation
		  (dataRepresentationTemplate50EClass, 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 simple packing", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1_en", "For most templates, details of the packing process are described in Regulation 92.9.4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2_en", "Negative values of E or D shall be represented according to Regulation 92.1.5." //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate50_ReferenceValue(), 
		   source, 
		   new String[] {
			 "label_en", "R", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Reference value (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate50_BinaryScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "E", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Binary scale factor" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate50_DecimalScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "D", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Decimal scale factor (D)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate50_NumberOfBitsUsedForEachPackedValue(), 
		   source, 
		   new String[] {
			 "label_en", "R", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Reference value (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate50_TypeOfOriginalFieldValues(), 
		   source, 
		   new String[] {
			 "label_en", "R", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Reference value (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplate51EClass, 
		   source, 
		   new String[] {
			 "description_en", "Matrix values at grid point \u2013 simple packing", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1_en", "For most templates, details of the packing process are described in Regulation 92.9.4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2_en", "This form of representation enables a matrix of values to be depicted at each grid point; the two dimensions of the matrix\r\nmay represent coordinates expressed in terms of two elemental parameters (e.g. direction and frequency for wave\r\nspectra). The numeric values of these coordinates, beyond that of simple subscripts, can be given in a functional form,\r\nor as a collection of explicit numbers.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_3_en", "Some simple coordinate functional forms are tabulated in Code table 5.2. Where a more complex coordinate function\r\napplies, the coordinate values shall be explicitly denoted by the inclusion of the actual set of values rather than the\r\ncoefficients. This shall be indicated by a code figure 0 from Code table 5.2; the number of explicit values coded shall be\r\nequal to the appropriate dimension of the matrix for which values are presented and they shall follow octet 36 in\r\nplace of the coefficients.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_4_en", "Matrix bit maps will be present only if indicated by octet 22. If present, there shall be one bit map for each grid point\r\nwith data values, as defined by the primary bit map in Section 6, each of length (NR x NC) bits: a bit set to 1 will\r\nindicate a data element at the corresponding location within the matrix. Bit maps shall be represented end-to-end,\r\nwithout regard for octet boundaries; the last bit map shall, if necessary, be followed by bits set to zero to fill any\r\npartially used octet.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_5_en", "Matrices restricted to scanning in the +i direction (left to right) and in the \u2013j direction (top to bottom)." //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_MatrixBitmapPresence(), 
		   source, 
		   new String[] {
			 "label_en", "Matrix bit maps presence", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "0, no matrix bit maps present; 1\u2013matrix bit maps present" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_NumberOfDataValues(), 
		   source, 
		   new String[] {
			 "label_en", "Number of data values", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of data values encoded in Section 7" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_FirstDimension(), 
		   source, 
		   new String[] {
			 "label_en", "NR", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "First dimension (rows) of each matrix" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_SecondDimension(), 
		   source, 
		   new String[] {
			 "label_en", "NC", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Second dimension (columns) of each matrix" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_FirstDimensionCoordinateValueDefinition(), 
		   source, 
		   new String[] {
			 "label_en", "First dimension coordinate value definition", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "First dimension coordinate value definition (Code table 5.2)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_Nc1(), 
		   source, 
		   new String[] {
			 "label_en", "NC1", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of coefficients or values used to specify first dimension coordinate function" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_SecondDimensionCoordinateValueDefinition(), 
		   source, 
		   new String[] {
			 "label_en", "Second dimension coordinate value definition", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Second dimension coordinate value definition (Code table 5.2)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_Nc2(), 
		   source, 
		   new String[] {
			 "label_en", "NC2", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of coefficients or values used to specify second dimension coordinate function" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_FirstDimensionPhysicalSignificance(), 
		   source, 
		   new String[] {
			 "label_en", "First dimension physical significance", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "First dimension physical significance (Code table 5.3)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_SecondDimensionPhysicalSignificance(), 
		   source, 
		   new String[] {
			 "label_en", "Second dimension physical significance", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Second dimension physical significance (Code table 5.3)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_FirstDimensionCoefficientsOffset(), 
		   source, 
		   new String[] {
			 "label_en", "Offset of coefficients to define first dimension ", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Offset of coefficients to define first dimension coordinate values in functional form,\r\nor the explicit coordinate values (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate51_SecondDimensionCoefficientsOffset(), 
		   source, 
		   new String[] {
			 "label_en", "Offset of coefficients to define second dimension ", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Offset of coefficients to define second dimension coordinate values in functional form,\r\nor the explicit coordinate values (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplate52EClass, 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 complex packing", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1_en", "For most templates, details of the packing process are described in Regulation 92.9.4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2_en", "Group lengths have no meaning for row by row packing, where groups are coordinate lines (so the grid description\r\nsection and possibly the bit-map section are enough); for consistency, associated field width and reference should then\r\nbe encoded as 0.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_3_en", "For row by row packing with a bit-map, there should always be as many groups as rows. In case of rows with only\r\nmissing values, all associated descriptors should be coded as zero.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_4_en", "Management of widths into a reference and increments, together with management of lengths as scaled incremental\r\nvalues, are intended to save descriptor size (which is an issue as far as compression gains are concerned).", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_5_en", "Management of explicitly missing values is an alternative to bit-map use within Section 6; it is intended to reduce the\r\nwhole GRIB message size.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_6_en", "There may be two types of missing value(s), such as to make a distinction between static misses (for instance, due to a\r\nland/sea mask) and occasional misses.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_7_en", "As an extra option, substitute value(s) for missing data may be specified. If not wished (or not applicable), all bits should\r\nbe set to 1 for relevant substitute value(s).", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_8_en", "If substitute value(s) are specified, type of content should be consistent with original field values (floating-point - and then\r\nIEEE 32-bit encoded-, or integer).", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_9_en", "If primary missing values are used, such values are encoded within appropriate group with all bits set to 1 at packed data\r\nlevel.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_10_en", "If secondary missing values are used, such values are encoded within appropriate group with all bits set to 1, except the\r\nlast one set to 0, at packed data level.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_11_en", "A group containing only missing values (of either type) will be encoded as a constant group (null width, no associated\r\ndata) and the group reference will have all bits set to 1 for primary type, and all bits set to 1, except the last bit set to 0, for\r\nsecondary type.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_12_en", "If necessary, group widths and/or field width of group references may be enlarged to avoid ambiguities between\r\nmissing value indicator(s) and true data.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_13_en", "The group width is the number of bits used for every value in a group.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_14_en", "The group length (L) is the number of values in a group.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_15_en", "The essence of the complex packing method is to subdivide a field of values into NG groups, where the values in each\r\ngroup have similar sizes. In this procedure, it is necessary to retain enough information to recover the group lengths upon\r\ndecoding. The NG group lengths for any given field can be described by Ln = ref + Kn x len_inc, n = 1, NG, where ref is\r\ngiven by octets 38\u201341 and len_inc by octet 42. The NG values of K (the scaled group lengths) are stored in the data\r\nsection, each with the number of bits specified by octet 47. Since the last group is a special case which may not be able\r\nto be specified by this relationship, the length of the last group is stored in octets 43\u201346.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_16_en", "See data template 7.2 and associated Notes for complementary information." //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_GroupSplittingMethod(), 
		   source, 
		   new String[] {
			 "label_en", "Group splitting method used", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Group splitting method used (see Code table 5.4)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_MissingValueManagement(), 
		   source, 
		   new String[] {
			 "label_en", "Missing value management used", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Missing value management used (see Code table 5.5)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_PrimaryMissingValueSubstitute(), 
		   source, 
		   new String[] {
			 "label_en", "Primary missing value substitute", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Primary missing value substitute" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_SecondaryMissingValueSubstitute(), 
		   source, 
		   new String[] {
			 "label_en", "Secondary missing value substitute", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Secondary missing value substitute" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_Ng(), 
		   source, 
		   new String[] {
			 "label_en", "NG", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of groups of data values into which field is split" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_ReferenceForGroupWidths(), 
		   source, 
		   new String[] {
			 "label_en", "Reference for group widths", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Reference for group widths (see Note 12)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_GroupWidthsNumberOfBits(), 
		   source, 
		   new String[] {
			 "label_en", "Number of bits used for the group widths", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of bits used for the group widths (after the reference value in octet 36 has been\r\nremoved)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_ReferenceForGroupLengths(), 
		   source, 
		   new String[] {
			 "label_en", "Reference for group lengths", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Reference for group lengths (see Note 13)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_GroupLengthsIncrement(), 
		   source, 
		   new String[] {
			 "label_en", "Length increment for the group lengths", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Length increment for the group lengths (see Note 14)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_TrueLengthOfLastGroup(), 
		   source, 
		   new String[] {
			 "label_en", "True length of last group", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "True length of last group" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate52_ScaledGroupLengthNumberOfBits(), 
		   source, 
		   new String[] {
			 "label_en", "Number of bits used for the scaled group lengths", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of bits used for the scaled group lengths (after subtraction of the reference value\r\ngiven in octets 38\u201341 and division by the length increment given in octet 42)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplate53EClass, 
		   source, 
		   new String[] {
			 "description_en", "Matrix values at grid point \u2013 simple packing", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1_en", "For most templates, details of the packing process are described in Regulation 92.9.4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2_en", "Spatial differencing is a pre-processing before group splitting at encoding time. It is intended to reduce the size of\r\nsufficiently smooth fields, when combined with a splitting scheme as described in data representation template 5.2. At\r\norder 1, an initial field of values f is replaced by a new field of values g, where g1 = f1, g2 = f2 \u2013 f1, \u2026, gn = fn \u2013 fn\u20131. At\r\norder 2, the field of values g is itself replaced by a new field of values h, where h1 = f1, h2 = f2, h3 = g3 \u2013 g2, \u2026, hn = gn \u2013\r\ngn\u20131. To keep values positive, the overall minimum of the resulting field (either gmin or hmin) is removed. At decoding\r\ntime, after bit string unpacking, the original scaled values are recovered by adding the overall minimum and summing up\r\nrecursively.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_3_en", "For differencing of order n, the first n values in the array that are not missing are set to zero in the packed array. These\r\ndummy values are not used in unpacking.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_4_en", "See data template 7.3 and associated Notes for complementary information." //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate53_OrderOfSpatialDifferencing(), 
		   source, 
		   new String[] {
			 "label_en", "Order of spatial differencing", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Order of spatial differencing (see Code table 5.6)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate53_ExtraDifferencingOctetsNumber(), 
		   source, 
		   new String[] {
			 "label_en", "Number of octets required in the data section to specify extra descriptors needed for spatial\r\ndifferencing", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of octets required in the data section to specify extra descriptors needed for spatial\r\ndifferencing (octets 6\u2013ww in data template 7.3)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplate54EClass, 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 IEEE floating point data" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate54_Precision(), 
		   source, 
		   new String[] {
			 "label_en", "Precision", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Precision (see Code table 5.7)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplate55EClass, 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 JPEG 2000 code stream format", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1_en", "For most templates, details of the packing process are described in Regulation 92.9.4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2_en", "The purpose of this template is to scale the grid point data to obtain the desired precision, if appropriate, and then\r\nsubtract out the reference value from the scaled field as is done using data representation template 5.0. After this, the\r\nresulting grid point field can be treated as a grayscale image and is then encoded into the JPEG 2000 code stream\r\nformat. To unpack the data field, the JPEG 2000 code stream is decoded back into an image, and the original field is\r\nobtained from the image data as described in Regulation 92.9.4, Note 4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_3_en", "The JPEG 2000 standard specifies that the bit-depth must be in the range of 1 to 38 bits.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_4_en", "The compression ratio M:1 (e.g. 20:1) specifies that the encoded stream should be less than ((1/M) x depth x number of\r\ndata points) bits, where depth is specified in octet 20 and the number of data points in octets 6\u20139 of the data\r\nrepresentation section.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_5_en", "The order of the data points should remain as specified in the scanning mode flags (Flag table 3.4) set in the\r\nappropriate grid definition template, even though the JPEG 2000 standard specifies that an image is stored starting\r\nat the top left corner. Assuming that the encoding software is expecting the image data in raster order (left to right\r\nacross rows for each row), users should set the image width to Ni (or Nx) and the height to Nj (or Ny) if bit 3 of the\r\nscanning mode flag equals 0 (adjacent points in i (x) order), when encoding the \"image\". If bit 3 of the scanning mode\r\nflags equals 1 (adjacent points in j (y) order), it may be advantageous to set the image width to Nj (or Ny) and the height\r\nto Ni (or Nx).", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
			 "note_6_en", "This template should not be used when the data points are not available on a rectangular grid, such as occurs if some\r\ndata points are bit-mapped out or if section 3 describes a quasi-regular grid. If it is necessary to use this template on\r\nsuch a grid, the data field can be treated as a one-dimensional image where the height is set to 1 and the width is set\r\nto the total number of data points specified in octets 6\u20139.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_7_en", "Negative values of E or D shall be represented according to Regulation 92.1.5.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_8_en", "JPEG 2000 should not be used for bit-mapped or quasi-regular grid data." //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate55_ReferenceValue(), 
		   source, 
		   new String[] {
			 "label_en", "R", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Reference value (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate55_BinaryScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "E", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Binary scale factor" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate55_DecimalScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "D", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Decimal scale factor (D)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate55_ScaledAndReferencedValueBitsNumber(), 
		   source, 
		   new String[] {
			 "label_en", "Number of bits required to hold the resulting scaled and referenced data values", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of bits required to hold the resulting scaled and referenced data values (i.e. depth\r\nof the grayscale image) (see Note 2)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate55_TypeOfOriginalFieldsValues(), 
		   source, 
		   new String[] {
			 "label_en", "Type of original field values", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Type of original field values (see Code table 5.1)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate55_TypeOfCompression(), 
		   source, 
		   new String[] {
			 "label_en", "Type of compression used", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Type of compression used (see Code table 5.40)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate55_TargetCompressionRatio(), 
		   source, 
		   new String[] {
			 "label_en", "Target compression ratio", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Target compression ratio, M:1 (with respect to the bit-depth specified in octet 20), when\r\noctet 22 indicates lossy compression. Otherwise, set to missing (see Note 3)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplate541EClass, 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 Portable Network Graphics (PNG) format", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1_en", "For most templates, details of the packing process are described in Regulation 92.9.4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2_en", "The purpose of this template is to scale the grid point data to obtain the desired precision, if appropriate, and then\r\nsubtract out the reference value from the scaled field, as is done using data representation template 5.0. After this, the\r\nresulting grid point field can be treated as an image and is then encoded into PNG format. To unpack the data field, the\r\nPNG stream is decoded back into an image, and the original field is obtained from the image data as described in\r\nRegulation 92.9.4, Note 4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_3_en", "PNG does not support all bit-depths in an image, so it is necessary to define which depths can be used and how they\r\nare to be treated. For grayscale images, PNG supports depths of 1, 2, 4, 8 or 16 bits. Red-Green-Blue (RGB) colour\r\nimages can have depths of 8 or 16 bits with an optional alpha sample. Valid values for octet 20 can be:\r\n1, 2, 4, 8, or 16 : Treat as grayscale image\r\n24 : Treat as RGB colour image (each component having 8-bit depth)\r\n32 : Treat as RGB w/ alpha sample colour image (each component having 8-bit depth)", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_4_en", "The order of the data points should remain as specified in the scanning mode flags (Flag table 3.4) set in the appropriate\r\ngrid definition template, even though the PNG standard specifies that an image is stored starting at the top left corner and\r\nscans each row from left to right, starting with the top row. Users should set the image width to Ni (or Nx) and the\r\nheight to Nj (or Ny) if bit 3 of the scanning mode flag equals 0 (adjacent points in i (x) order), when encoding the \"image\".\r\nIf bit 3 of the scanning mode flags equals 1 (adjacent points in j (y) order), it may be advantageous to set the image width\r\nto Nj (or Ny) and the height to Ni (or Nx).", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
			 "note_5_en", "This template should not be used when the data points are not available on a rectangular grid, such as occurs if some\r\ndata points are bit-mapped out or if section 3 describes a quasi-regular grid. If it is necessary to use this template on\r\nsuch a grid, the data field can be treated as a one-dimensional image where the height is set to 1 and the width is set\r\nto the total number of data points specified in octets 6\u20139.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_6_en", "Negative values of E or D shall be represented according to Regulation 92.1.5." //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate541_ReferenceValue(), 
		   source, 
		   new String[] {
			 "label_en", "R", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Reference value (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate541_BinaryScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "E", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Binary scale factor" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate541_DecimalScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "D", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Decimal scale factor (D)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate541_ScaledAndReferencedValueBitsNumber(), 
		   source, 
		   new String[] {
			 "label_en", "Number of bits required to hold the resulting scaled and referenced data values", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of bits required to hold the resulting scaled and referenced data values (i.e. depth\r\nof the image) (see Note 2)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate541_TypeOfOriginalFieldsValues(), 
		   source, 
		   new String[] {
			 "label_en", "Type of original field values", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Type of original field values (see Code table 5.1)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplate550EClass, 
		   source, 
		   new String[] {
			 "description_en", "Spectral data \u2013 simple packing", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1_en", "For most templates, details of the packing process are described in Regulation 92.9.4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2_en", "Removal of the real part of (0.0) coefficient from packed data is intended to reduce the variability of the coefficients, in\r\norder to improve packing accuracy.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_3_en", "For some spectral representations, the (0.0) coefficient represents the mean value of the parameter represented.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_4_en", "Negative values of E or D shall be represented according to Regulation 92.1.5." //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate550_ReferenceValue(), 
		   source, 
		   new String[] {
			 "label_en", "R", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Reference value (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate550_BinaryScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "E", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Binary scale factor" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate550_DecimalScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "D", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Decimal scale factor (D)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate550_PackedValueBitsNumber(), 
		   source, 
		   new String[] {
			 "label_en", "Number of bits required to hold the resulting scaled and referenced data values", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of bits required to hold the resulting scaled and referenced data values (i.e. depth\r\nof the image) (see Note 2)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate550_RealPartOfCoefficient(), 
		   source, 
		   new String[] {
			 "label_en", "Real part of coefficient", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Real part of (0.0) coefficient (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplate551EClass, 
		   source, 
		   new String[] {
			 "description_en", "Spherical harmonics data \u2013 complex packing", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1_en", "For most templates, details of the packing process are described in Regulation 92.9.4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2_en", "The unpacked subset is a set of values defined in the same way as the full set of values (on a spectrum limited to JS,\r\nKS and MS), but on which scaling and packing are not applied. Associated values are stored in octets 6 onwards of\r\nSection 7.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_3_en", "The remaining coefficients are multiplied by (n x \uf020(n+1))P, scaled and packed. The operator associated with this\r\nmultiplication is derived from the Laplacian operator on the sphere.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_4_en", "The retrieval formula for a coefficient of wave number n is then:\r\nY = (R + X x 2E) x10\u2013D x (n x (n+1))\u2013P where X is the packed scaled value associated with the coefficient." //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate551_P(), 
		   source, 
		   new String[] {
			 "label_en", "P", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Laplacian scaling factor (expressed in 10\u20136 units)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate551_Js(), 
		   source, 
		   new String[] {
			 "label_en", "Js", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Pentagonal resolution parameter of the unpacked subset (see Note 1)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate551_Ks(), 
		   source, 
		   new String[] {
			 "label_en", "KS", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Pentagonal resolution parameter of the unpacked subset (see Note 1)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate551_Ms(), 
		   source, 
		   new String[] {
			 "label_en", "Ms", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "pentagonal resolution parameter of the unpacked subset (see Note 1)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate551_Ts(), 
		   source, 
		   new String[] {
			 "label_en", "Ts", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Total number of values in the unpacked subset (see Note 1)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate551_UnpackedSubsetPrecision(), 
		   source, 
		   new String[] {
			 "label_en", "Precision of the unpacked subset", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Precision of the unpacked subset (see Code table 5.7)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplate561EClass, 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 simple packing with logarithm pre-processing", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1_en", "This template is experimental, was not validated at the time of publication and should be used only for\r\nbilateral previously agreed tests.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2_en", "This template is appropriately designed for data sets with all non-negative values and a wide variability range (more then\r\n5 orders of magnitude). It must not be used for data sets with negative values or smaller variability range.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_3_en", "A logarithm pre-processing algorithm is used to fit the variability range into one or two order of magnitudes before using\r\nthe simple packing algorithm. It requires a parameter (B) to assure that all values passed to the logarithm function are\r\npositive. Thus scaled values are Z = ln (Y+B), where Y are the original values, ln is the natural logarithm (or Napierian)\r\nfunction and B is chosen so that Y+B > 0.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_4_en", "Best practice follows for choosing the B pre-processing parameter.\r\n(a) If the data set minimum value is positive, B can be safely put to zero.\r\n(b) If the data set minimum is zero, all values must be scaled to become greater than zero and B can be equal to the\r\nminimum positive value in the data set.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_5_en", "Data shall be packed using Data template 7." //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate561_ReferenceValue(), 
		   source, 
		   new String[] {
			 "label_en", "R", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Reference value (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate561_BinaryScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "E", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Binary scale factor" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate561_DecimalScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "D", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Decimal scale factor (D)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate561_NumberOfBitsUsedForEachPackedValue(), 
		   source, 
		   new String[] {
			 "label_en", "R", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Reference value (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate561_PreProcessingParameter(), 
		   source, 
		   new String[] {
			 "label_en", "B", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Pre-processing parameter (IEEE 32-bit floating-point value)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplate5200EClass, 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 simple packing", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_1_en", "For most templates, details of the packing process are described in Regulation 92.9.4.", //$NON-NLS-1$ //$NON-NLS-2$
			 "note_2_en", "Negative values of E or D shall be represented according to Regulation 92.1.5." //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate5200_NumberOfBitsUsedForEachPackedValue(), 
		   source, 
		   new String[] {
			 "label_en", "Number of bits used for each packed value", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Number of bits used for each packed value in the run length packing with level" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate5200_Mv(), 
		   source, 
		   new String[] {
			 "label_en", "MV", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Maximum value within the levels that are used in the packing" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate5200_Mvl(), 
		   source, 
		   new String[] {
			 "label_en", "MVL", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Maximum value of level (predefined)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate5200_DecimalScaleFactor(), 
		   source, 
		   new String[] {
			 "label_en", "Decimal scale factor", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Decimal scale factor of representative value of each level" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (getDataRepresentationTemplate5200_MvlListOffset(), 
		   source, 
		   new String[] {
			 "label_en", "Offset of the list of MVL scaled representative values", //$NON-NLS-1$ //$NON-NLS-2$
			 "description_en", "Offset of the list of MVL scaled representative values of each level from lv = 1 to MVL" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum, 
		   source, 
		   new String[] {
			 "description_en", "Code table 5.0 \u2013 Data representation template number" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(0), 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 simple packing" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(1), 
		   source, 
		   new String[] {
			 "description_en", "Matrix value at grid point \u2013 simple packing" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(2), 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 complex packing" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(3), 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 complex packing and spatial differencing" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(4), 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 IEEE floating point data" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(5), 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 JPEG 2000 code stream format" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(6), 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 Portable Network Graphics (PNG)" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(7), 
		   source, 
		   new String[] {
			 "description_en", "Spectral data \u2013 simple packing" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(8), 
		   source, 
		   new String[] {
			 "description_en", "Spherical harmonics data \u2013 complex packing" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(9), 
		   source, 
		   new String[] {
			 "description_en", "Grid point data \u2013 simple packing with logarithm pre-processing" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(10), 
		   source, 
		   new String[] {
			 "description_en", "Run length packing with level values" //$NON-NLS-1$ //$NON-NLS-2$
		   });		
		addAnnotation
		  (dataRepresentationTemplateNumberEEnum.getELiterals().get(11), 
		   source, 
		   new String[] {
			 "description_en", "Missing" //$NON-NLS-1$ //$NON-NLS-2$
		   });
	}

} //DataRepresentationsPackageImpl
